package com.syp.lease.web.admin.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.syp.lease.model.entity.ViewAppointment;
import com.syp.lease.web.admin.mapper.ViewAppointmentMapper;
import com.syp.lease.web.admin.service.ViewAppointmentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.syp.lease.web.admin.vo.appointment.AppointmentQueryVo;
import com.syp.lease.web.admin.vo.appointment.AppointmentVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * ViewAppointmentServiceImpl类实现了ViewAppointmentService接口，提供预约信息查询的服务实现。
 * 它继承了ServiceImpl，用于简化数据访问层的实现，并专注于业务逻辑的处理。
 */
@Service
public class ViewAppointmentServiceImpl extends ServiceImpl<ViewAppointmentMapper, ViewAppointment>
        implements ViewAppointmentService {

    @Autowired
    private ViewAppointmentMapper viewAppointmentMapper;

    /**
     * 分页查询预约信息。
     * 此方法使用MyBatis-Plus的分页插件和自定义查询参数，对预约信息进行分页查询。
     *
     * @param page    分页对象，包含分页参数如当前页和每页大小。
     * @param queryVo 查询参数封装对象，包含查询预约信息的各种条件。
     * @return 返回一个IPage对象，包含查询结果和分页信息。
     */
    @Override
    public IPage<AppointmentVo> pageAppointment(Page<AppointmentVo> page, AppointmentQueryVo queryVo) {
        return viewAppointmentMapper.pageAppointment(page, queryVo);
    }
}
